use std::collections::HashSet;

/*
设计思路是：为了统计输入字符串中不重复元素的数量，本函数采用了一种基于HashSet的去重方法。
首先，将输入字符串按逗号分割成多个子字符串，并去除每个子字符串的前后空格，以确保元素比较的准确性。
接着，利用 HashSet 的特性，即集合内元素唯一，来存储处理后的子字符串。
     通过遍历分割后的子字符串，将每个元素添加到 HashSet 中，自动实现去重。
最终，通过获取 HashSet 的大小，即可得到不重复元素的总数。
这种设计简洁高效，通过哈希表可以接近O(1)的检索速度，能够快速计算出结果，同时保证了算法的鲁棒性。
*/

pub fn new_count_distinct(input_str: &str) -> usize {
    // todo!()

    // 将输入字符串按逗号分割成向量
    let elements: Vec<&str> = input_str.split(',').collect();

    // 使用HashSet来存储不重复的元素
    let mut uni_elements = HashSet::new();

    // 遍历所有元素并将其插入到HashSet中
    for element in elements {
        uni_elements.insert(element.trim()); // 去除前后空格
    }

    // 返回HashSet的大小，即不重复元素的个数
    uni_elements.len()
}
